The exemplary embodiment relates to a system and method for encoding and handling self-contained and incremental document history for documents encoded in a markup language such as Extensible Markup Language (XML).
XML is a widely used standard for encoding document information. For example, many word processing programs save documents in an XML format as a way of preserving the content and arrangement of the document. Additionally, XML documents (or XML files) may be passed between distinct software applications as a way of exchanging data in a universal format. These XML documents may change over time through the addition and deletion of information in the document. However, there is currently no universal way of keeping track of these changes within the document in a manner that allows any application or user to determine the history of changes in the document (“history”). Change history of an XML document may be useful for numerous reasons. Among other things, an application or user may wish to view a prior version of the document or merge a version of the document with another version of the same or a different document. Currently, such XML document management requires a content management system or database separate from the XML document itself. Models and operations pertaining to document change history are therefore hidden from view, and there exists no universal and reliable mechanism to allow for making this information manageable across diverse platforms. Additionally, many versioning systems are compatible and optimized only from the implementing application's point of view. Therefore, some basic universal functionality relating to the encoding and management of the incremental change history of an XML document within the XML document itself is of interest as XML documents become more prevalent within the user community.